home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 145 / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan).7z / Gekkan Dennou Club - 2000.6 Vol. 145 (Japan) (Track 1).bin / tools / sharp / sxwork1i.lzh / SXWORK1.XDF / INCLUDE / SXDEF2.H < prev    next >
Text File  |  1994-02-20  |  6KB  |  280 lines

  1. /*
  2.  * sxdef2.h X68k SX_SYSTEM ver 2.01 Copyright 1994 SHARP/First Class Technology
  3.  */
  4. #ifndef __SXDEF2_H
  5. #define __SXDEF2_H
  6.  
  7. #ifndef __CLASS_H
  8. typedef int        BOOLEAN;
  9. #endif
  10. typedef void        *Pointer;
  11. typedef void        **Handle;
  12. typedef long        LPoint;
  13. typedef union Point    Point;
  14. typedef union Rect    Rect;
  15. typedef struct Region    Region;
  16. typedef unsigned short    BitImg;
  17. typedef unsigned char    LASCII[256];
  18. typedef struct Bitmap    Bitmap;
  19. typedef struct Graph    Graph;
  20. typedef enum EventCode    EventCode;
  21. typedef struct Event    Event;
  22. typedef struct Window    Window;
  23. typedef struct Subwin    Subwin;
  24. typedef union TsEvent    TsEvent;
  25. /*
  26.  * 以下でTypedef宣言している構造体は、各マネージャのヘッダファイルで
  27.  * 実際のstruct宣言を行っています。利用の際は、必ずそのヘッダファイルを
  28.  * インクルードしてください。
  29.  */
  30. typedef struct Heap    Heap;
  31. typedef struct GScript    GScript;
  32. typedef struct Menu    Menu;
  33. typedef struct Control    Control;
  34. typedef struct Dialog    Dialog;
  35. typedef struct TEdit    TEdit;
  36.  
  37. #ifndef NULL
  38. #define NULL        ((void *) 0)
  39. #endif
  40. #ifndef FALSE
  41. #define FALSE        0
  42. #endif
  43. #ifndef TRUE
  44. #define TRUE        1
  45. #endif
  46. /*
  47.  * XC ver2.1では、可変長データを扱うための配列宣言は添字を省略する
  48.  */
  49. #ifndef _VARLEN
  50. #define _VARLEN
  51. #endif
  52.  
  53. #define HIBYTE(w)    ((long)(w) >> 8 & 0x000000ff)
  54. #define LOWBYTE(w)    ((long)(w) & 0x000000ff)
  55. #define HIWORD(l)    ((long)(l) >> 16 & 0x0000ffff)
  56. #define LOWWORD(l)    ((long)(l) & 0x0000ffff)
  57. #define LONGWORD(h,l)    ((long)(h) << 16 | LOWWORD(l))
  58. /*
  59.  *    メモリマン (Memory Man)
  60.  *
  61.  * ハンドル処理関数(MMChHdlNew、MMHdlDisposeなど)を利用し易くするため
  62.  * Handleを総称的なポインタ型void *に置き換えて関数プロトタイプを行う
  63.  */
  64. #ifndef _Handle
  65. #define _Handle        void *
  66. #endif
  67. /*
  68.  *    キーボードマン (Keyboard Man)
  69.  */
  70. #define KS_SHIFT    1
  71. #define KS_CTRL        (1 << 1)
  72. #define KS_OPT1        (1 << 2)
  73. #define KS_OPT2        (1 << 3)
  74. #define KS_KANA        (1 << 8)
  75. #define KS_ROMEJI    (1 << 9)
  76. #define KS_CODEIN    (1 << 10)
  77. #define KS_CAPS        (1 << 11)
  78. #define KS_INS        (1 << 12)
  79. #define KS_HIRA        (1 << 13)
  80. #define KS_ZEN        (1 << 14)
  81. #define KS_XF1        (1 << 16)
  82. #define KS_XF2        (1 << 17)
  83. #define KS_XF3        (1 << 18)
  84. #define KS_XF4        (1 << 19)
  85. #define KS_XF5        (1 << 20)
  86. /*
  87.  *    グラフマン (Graph Man)
  88.  *
  89.  * 文字配列LASCIIを関数プロトタイプやキャストで利用し易くするため
  90.  * unsigned char *に置き換えて使う
  91.  */
  92. #ifndef _LASCII
  93. #define _LASCII        unsigned char *
  94. #endif
  95.  
  96. union Point {
  97.     struct {
  98.         short x;
  99.         short y;
  100.     } p;
  101.     LPoint x_y;
  102. };
  103.  
  104. union Rect {
  105.     struct {
  106.         short left;
  107.         short top;
  108.         short right;
  109.         short bottom;
  110.     } d;
  111.     struct {
  112.         LPoint l_t;
  113.         LPoint r_b;
  114.     } l;
  115. };
  116.  
  117. struct Region {
  118.     long size;
  119.     Rect bounds;
  120.     short data[_VARLEN];        /* ここは可変長データの先頭    */
  121. };
  122.  
  123. struct Bitmap {
  124.     short type;
  125.     Rect rect;
  126.     char *base;
  127.     short line;
  128.     union {
  129.         struct {
  130.             long page;
  131.             short aPage;
  132.         } tbm;
  133.         unsigned short bRatio;
  134.     } opt;
  135. };
  136.  
  137. struct Graph {
  138.     Bitmap *bmap;
  139.     Rect rect;
  140.     long (**procs)();
  141.     Region **visible;
  142.     Region **clipping;
  143.     short drawLvl;
  144.     unsigned short penMode;
  145.     Point penLoc;
  146.     Point penSize;
  147.     BitImg *penPat;
  148.     BitImg *exPat;
  149.     short workKind;
  150.     Handle workHdl;
  151.     unsigned short fgColor;
  152.     unsigned short bgColor;
  153.     short fontKind;
  154.     unsigned short fontFace;
  155.     unsigned short fontMode;
  156.     Point fontSize;
  157. };
  158. /*
  159.  *    イベントマン (Event Man)
  160.  */
  161. enum EventCode {
  162.     E_IDLE,
  163.     E_MSLDOWN,
  164.     E_MSLUP,
  165.     E_MSRDOWN,
  166.     E_MSRUP,
  167.     E_KEYDOWN,
  168.     E_KEYUP,
  169.     E_UPDATE,
  170.     E_RESERVE1,
  171.     E_ACTIVATE,
  172.     E_RESERVE2,
  173.     E_RESERVE3,
  174.     E_SYSTEM1,
  175.     E_SYSTEM2,
  176.     E_USER1,
  177.     E_USER2        /* 15 */
  178. };
  179.  
  180. #define EM_IDLE        (1 << E_IDLE)
  181. #define EM_MSLDOWN    (1 << E_MSLDOWN)
  182. #define EM_MSLUP    (1 << E_MSLUP)
  183. #define EM_MSRDOWN    (1 << E_MSRDOWN)
  184. #define EM_MSRUP    (1 << E_MSRUP)
  185. #define EM_KEYDOWN    (1 << E_KEYDOWN)
  186. #define EM_KEYUP    (1 << E_KEYUP)
  187. #define EM_UPDATE    (1 << E_UPDATE)
  188. #define EM_RESERVE1    (1 << E_RESERVE1)
  189. #define EM_ACTIVATE    (1 << E_ACTIVATE)
  190. #define EM_RESERVE2    (1 << E_RESERVE2)
  191. #define EM_RESERVE3    (1 << E_RESERVE3)
  192. #define EM_SYSTEM1    (1 << E_SYSTEM1)
  193. #define EM_SYSTEM2    (1 << E_SYSTEM2)
  194. #define EM_USER1    (1 << E_USER1)
  195. #define EM_USER2    (1 << E_USER2)
  196. #define EM_EVERY    0xffff
  197.  
  198. struct Event {
  199.     short what;
  200.     union {
  201.         Window *win;
  202.         struct {
  203.             short code;
  204.             short ascii;
  205.         } key;
  206.         long data;
  207.     } whom;
  208.     unsigned long when;
  209.     Point where;
  210.     unsigned long how;
  211. };
  212. /*
  213.  *    ウィンドウマン (Window Man)
  214.  */
  215. #define NONTITLE    (_LASCII)"\0"
  216.  
  217. struct Window {
  218.     Graph graph;
  219.     unsigned short kind;
  220.     char visible;
  221.     char hilite;
  222.     char close;
  223.     char status;
  224.     unsigned short option;
  225.     Region **outside;
  226.     Region **inside;
  227.     Region **update;
  228.     long (**def)();
  229.     long defData;
  230.     LASCII **title;
  231.     unsigned short tWidth;
  232.     Control **control;
  233.     Window *next;
  234.     GScript **gScript;
  235.     long taskID;
  236. };
  237. /*
  238.  *    サブウィンドウマン(Sub Window Man)
  239.  */
  240. #define WS_INSIDE_X    1
  241. #define WS_INSIDE_Y    18
  242. #define WS_CLOSE_W    10
  243.  
  244. struct Subwin {
  245.     Window win;
  246.     unsigned long priority;
  247. };
  248. /*
  249.  *    コントロールマン (Control Man)
  250.  */
  251. #define CHRBTN_H    6
  252. #define CHRBTN_V    19
  253. #define RADBTN_H    32
  254. #define RADBTN_V    9
  255. #define CHKBOX_H    13
  256. #define CHKBOX_V    13
  257. #define SLDVOL_H    14
  258. #define SLDVOL_V    16
  259. #define ADJBTN_H    48
  260. #define ADJBTN_V    18
  261. #define SCRLBR_H    18
  262. /*
  263.  *    タスクマン (Task Man)
  264.  */
  265. #define TS_NAMEMAX    90        /* この値は変更できません    */
  266.  
  267. union TsEvent {
  268.     struct {
  269.         short what;
  270.         long whom;
  271.         unsigned long when;
  272.         long whom2;
  273.         short what2;
  274.         short taskID;
  275.     } ts;
  276.     Event ev;
  277. };
  278.  
  279. #endif __SXDEF2_H
  280.